package main

// 原生 gRPC 客户端调用写法，仅供参考

import (
	"log"
	"time"

	"golang.org/x/net/context"
	"change.tm/microservice"
	pb "./service/helloworld"
)

func main() {
	conn, err := microservice.CreateSimpleClient("helloworld")
	// 创建连接客户端
	if err != nil {
		log.Fatalf("[ ERROR ] - 无法创建服务 : %v", err)
	}
	defer conn.Close()
	// 函数结束时自动断开连接，在频繁通信时可以考虑不断开连接，对连接对象进行复用，提高效率。

	c := pb.NewGreeterClient(conn)
	// 实例化接口定义客户端

	ctx, cancel := context.WithTimeout(context.Background(), time.Second)
	defer cancel()
	// 超时取消本次会话

	r, err := c.SayHello(ctx, &pb.HelloRequest{Name: "佐伯楽"})
	// 进行远程调用
	if err != nil {
		log.Fatalf("[ ERROR ] - 无法进行远程调用 : %v", err)
	}

	log.Printf("Greeting: %s", r.Message)
	// 输出结果
} 